/**************************************************************
  > File Name: fork.c
  > Author: LuoLiang
  > Mail: 1204553475@qq.com 
  > Created Time: 2022年01月02日 星期日 19时28分15秒
 **************************************************************/

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>

#define LEFT 30000
#define RIGHT 30200
#define N 3

/*交叉分配法
 *
 *
 */


int main(int argc,char **argv)
{
	int i, j, n;
	pid_t pid;
	int flag = 1;
	
	for (n = 0; n < N; n++)
	{
		pid = fork();
		if (pid < 0)
		{
			perror("fork()");
			exit(1);
		}
		if (pid == 0)
		{
			for (i = LEFT + n; i <= RIGHT; i += N)
			{
				flag = 1;
				for (j = 2; j < i / 2; j++)
				{
					if (i % j == 0)
					{
						flag = 0;
						break;
					}
				}
				if (flag)
					printf("%d is a primer\n",i);
			}
			exit(0);
		}
	}
	for (n = 0; n < N; n++)
		wait(NULL);
	exit(0);
}
